Graphical (graph based) process modeling languages have gained wide acceptance and are more frequently used in business applications, where ease of use is often considered to be as important as the expressiveness of a language. Graphical process modeling languages are widely considered the most intuitive. Typically, graphical process modeling languages allow for expressing control-flows, or ordering dependencies among tasks, in a process. Expressing other process properties, such as data flows and resource use requires using extended graphical notations.
Traditionally, workflows have been delivered effectively in high volume production processes, where possible outcomes and deviations from the plan can be easily foreseen. However, in the emerging knowledge economy, the human factor plays greater and greater role in process execution, and new situations have to be taken into account. A good example of such situations can be seen in e-procurement processes, where customers often decide to cancel an order while it is being executed (for example, buying a book from e-tailer and later contacting the bookstore to revoke the order), change the ordered products (changing order from book “A” to book “B”), change the destination address, and the like.
A typical approach, when unexpected changes are introduced, is to cancel the process execution and invoke the process once again. However, with such an arrangement, some tasks that have been executed in the previous instance, might not have to be re-executed, as the change that triggered cancellation and new execution is not relevant for them.